package com.per.mybootall.service.impl;

import com.per.mybootall.common.Const;
import com.per.mybootall.dao.OrderMapper;
import com.per.mybootall.pojo.Order;
import com.per.mybootall.service.OrderInter;import com.per.mybootall.utils.BigDecimalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
@Service
public class Orderimpl implements OrderInter {
    //订单先于支付完成:1,productID  2,userID   3,userToken   4,who  5,productNumber
    //6,producrPrice
  @Autowired
  private RedisTemplate redisTemplate;
  @Autowired
  private OrderMapper orderMapper;
/*//  @Autowired
//  private Order order;*/
    @Override
    public int creatOrder(String usertoken, String whoareuser, Long userid, Integer productid, Integer productNumber, double producrPrice){
Order order=new Order();
        //       String usertokens=usertoken.substring(1,usertoken.length()-1);
//       String who=whoareuser.substring(1,whoareuser.length()-1);
        System.out.println("========================order:ss" + order);
       String redisIn=(String)redisTemplate.opsForValue().get(whoareuser);

       if(usertoken.equals(redisIn)){
           System.out.println("creat order error:"+Const.OrderCreat.NO_USER);
           return Const.OrderCreat.NO_USER;
       }
           //商业计算总价
           BigDecimal AllalipayPrice= BigDecimalUtil.mul(producrPrice,productNumber);
           order.setAllnumberPay(AllalipayPrice);
           order.setProductId(productid);  order.setProductNumber(productNumber);
           order.setUserId(userid);
        // order.setOrderEtat(0);未支付   order.setPayWhat(0);支付宝支付
           order.setOrderEtat(0);   order.setPayWhat(0);

       int orderInsertResult=orderMapper.insert(order);
        System.out.println("==================================================================================");
        System.out.println("==================================================================================");
        System.out.println("==================================================================================");
        System.out.println("==================================================================================");
        System.out.println("orderInsertResult:"+order.getId());
        int  mainkey=order.getId();
       if(orderInsertResult>=1&&mainkey>1){
           return mainkey;
       }
           return Const.OrderCreat.CreatOrder_error;

    }
}
